package com.todo.event.activity.application.entity.bo;

import com.todo.event.activity.common.enums.EventActivityDynamicWordEnum;
import com.todo.event.activity.common.enums.EventActivityExecuteRewardEnum;
import com.todo.event.activity.common.enums.EventActivityExecuteTouchEnum;
import lombok.Data;

import java.util.List;

/**
 * @author azhebuxing
 * @date 2025/1/8 08:06
 * @description
 */
@Data
public class EventActivityExecuteInfoBO {

    /**
     * 流量占比
     */
    private Integer FlowRatio;
    /**
     * 分流成名称
     */
    private String flowName;
    /**
     * 分流code-后续用于记录策略命中的分流
     * 当前创建时候自动生成，需要时使用即可
     */
    private String flowCode;
    /**
     * 是否对照组
     */
    private Boolean isCompared;
    /**
     * 奖励发放列表
     */
    private List<PropertyReward> propertyRewardList;
    /**
     * 消息触达
     */
    private MessageTouch messageTouch;


    @Data
    public static class PropertyReward {
        /**
         * 奖励分类
         */
        private EventActivityExecuteRewardEnum rewardEnum;
        /**
         * 发放Id
         */
        private String grantId;
    }

    @Data
    public static class MessageTouch {
        /**
         * 执行类型
         */
        private EventActivityExecuteTouchEnum executeClassifyEnum;
        /**
         * 关联的业务Id 如短信为模板id，供下游执行
         */
        private String relationId;
        /**
         * 关联业务数据
         */
        private String relationData;
        /**
         * 是否延迟执行
         */
        private Boolean isInterval;
        /**
         * 间隔事件 分钟
         */
        private Integer intervalTime;
        /**
         * 是否动态获取信息
         */
        private Boolean isDynamicInfo;
        /**
         * 动态词汇 当前系统动态获取的一些数据
         * 用于常见的并且消息中不携带的信息
         * 支持业务扩展，并枚举维护
         */
        private List<EventActivityDynamicWordEnum> dynamicWords;
    }
}
